JavaScript BigInt

বড় পূর্ণসংখ্যা পরিচালনা করা

জাভাস্ক্রিপ্ট BigInt কি?

BigInt হল একটি জাভাস্ক্রিপ্ট ডেটা টাইপ যা বৃহৎ পূর্ণসংখ্যার মানগুলি পরিচালনা এবং সংরক্ষণ করার জন্য।

BigInt আপনাকে সংখ্যার সীমার বাইরে বড় পূর্ণসংখ্যার সাথে কাজ করতে দেয়।

BigInt যে কোনো আকারের একটি পূর্ণসংখ্যা উপস্থাপন করতে পারে, শুধুমাত্র উপলব্ধ মেমরি দ্বারা সীমাবদ্ধ।

জাভাস্ক্রিপ্ট নির্ভুলতা

জাভাস্ক্রিপ্ট সংখ্যা শুধুমাত্র 15 সংখ্যার জন্য সঠিক:

উদাহরণ

// 15 সংখ্যা:
let x = 999999999999999; // ঠিক আছে

// 16 সংখ্যা:
let y = 9999999999999999; // নির্ভুলতা হারিয়ে যাবে

সংখ্যা হল 64-বিট ফ্লোটিং পয়েন্ট

সমস্ত জাভাস্ক্রিপ্ট নম্বর 64-বিট ফ্লোটিং-পয়েন্ট ফরম্যাটে (IEEE 754 স্ট্যান্ডার্ড) সংরক্ষণ করা হয়।

এই স্ট্যান্ডার্ডের সাথে, বড় সংখ্যাগুলিকে সঠিকভাবে উপস্থাপন করা যায় না, তবে বৃত্তাকার করা হয়।

নিরাপদ নম্বর সীমা:

JavaScript শুধুমাত্র নিরাপদে 2⁵³-1 (9007199254740991) পর্যন্ত পূর্ণসংখ্যা উপস্থাপন করতে পারে।

JavaScript শুধুমাত্র নিরাপদে -2⁵³-1 (-9007199254740991) পর্যন্ত পূর্ণসংখ্যা উপস্থাপন করতে পারে।

উদাহরণ

// MAX = 9007199254740991
let x = Number.MAX_SAFE_INTEGER;

// MIN = -9007199254740991
let y = Number.MIN_SAFE_INTEGER;

Number.MAX_SAFE_INTEGER :

// সর্বোচ্চ (সঠিক)
let x = 9007199254740991;

// সর্বোচ্চ + 10 (অস্পষ্টতা)
let y = x + 10; // নির্ভুলতা হারিয়ে যাবে!

⚠️দ্রষ্টব্য:

জাভাস্ক্রিপ্ট পূর্ণসংখ্যার মতো কোন জিনিস নেই।

সমস্ত জাভাস্ক্রিপ্ট নম্বর হল 64-বিট ফ্লোটিং পয়েন্ট।

কিভাবে একটি BigInt তৈরি করতে হয়

আপনি দুটি উপায়ে একটি BigInt তৈরি করতে পারেন:

  1. n প্রত্যয় সহ একটি পূর্ণসংখ্যা ধ্রুবক ব্যবহার করা
  2. একটি স্ট্রিং সহ BigInt() কনস্ট্রাক্টর ব্যবহার করা

উদাহরণ

// n প্রত্যয় সহ পূর্ণসংখ্যা ধ্রুবক ব্যবহার করা:
let x = 999999999999999n;

// একটি স্ট্রিং সহ BigInt() কনস্ট্রাক্টর ব্যবহার করে:
let y = BigInt("999999999999999");
let x = 12345678901234567890n;
let y = BigInt("12345678901234567890")

⚠️সতর্কতা:

একটি সংখ্যা সহ Bigint() কনস্ট্রাক্টর ব্যবহার করার সুপারিশ করা হয় না। সংখ্যা শুধুমাত্র 15 সংখ্যার সঠিক।

BigInt সৃষ্টির ডেমো:

BigInt তৈরি করেছে:

BigInt হল একটি জাভাস্ক্রিপ্ট ডেটা টাইপ

একটি BigInt এর জন্য "bigint" এর জাভাস্ক্রিপ্ট টাইপ হল:

let x = BigInt(999999999999999);

let type = typeof x; // "bigint"

BigInt হল জাভাস্ক্রিপ্টের দ্বিতীয় সংখ্যাসূচক ডেটা টাইপ (সংখ্যার পরে)।

BigInt সহ জাভাস্ক্রিপ্টে সমর্থিত ডেটা প্রকারের মোট সংখ্যা 8:

String
"Hello"
Number
123
নতুন
Bigint
123n
Boolean
true/false
Undefined
undefined
Null
null
Symbol
Symbol()
Object
{}

গাণিতিক অ্যাপস

BigInt স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট গণিত ফাংশন সমর্থন করে।

(+, -, ++, --, *, /, %, **)

উদাহরণ

// গুণ:

let x = 9007199254740995n;
let y = 9007199254740995n;

let z = x * y; // BigInt এর গুন

BigInt এবং সংখ্যার মিশ্রণ

BigInt এবং Number এর মধ্যে পাটিগণিত অনুমোদিত নয় (TypeError কারণ)।

একটি সুস্পষ্ট পরিবর্তন প্রথমে করা আবশ্যক.

❌ অনুমোদিত নয়:

let x = 10n;
let y = 5;

let z = x + y; // ❌ TypeError

✓ স্থির:

let x = 10n;
let y = 5;

let z = Number(x) + y; // স্বচ্ছ পরিবর্তন

রূপান্তর ডেমো:

রূপান্তর ফলাফল:

BigInt দশমিক

একটি BigInt দশমিক ধারণ করতে পারে না।

let x = 1.5n; // ❌ TypeError

⚠️দ্রষ্টব্য:

একটি ভগ্নাংশ সংখ্যাকে একটি BigInt এ রূপান্তর করার চেষ্টা করলে একটি ত্রুটি দেখা দেবে৷

তুলনামূলক অ্যাপ্লিকেশন

Bigint স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট তুলনা অপারেটর সমর্থন করে।

(<, > ==, ===, !==, <=, >=)

স্ট্যান্ডার্ড তুলনা অপারেটর ব্যবহার করে BigInts সংখ্যার সাথে তুলনা করা যেতে পারে।

উদাহরণ

// true
let x = (10n > 5n);

// মিথ্যা (বিভিন্ন প্রকার)
let y = (10n === 10);

// সত্য (শিথিল সমীকরণ)
let z = (10n == 10);

📝দ্রষ্টব্য:

BigInt এবং সংখ্যার মধ্যে একটি কঠোর সমতা (===) সর্বদা মিথ্যা কারণ তারা বিভিন্ন ধরনের।

BigInt Hexa, Octal এবং Binary

BigInt হেক্সাডেসিমেল, অক্টাল বা বাইনারি স্বরলিপিতেও লেখা যেতে পারে:

সাধারণ
256n
অক্টাল
0o400n
হেক্সাডেসিমেল
0x100n
বাইনারি
0b100000000n

উদাহরণ

let num = 256n;
let oct = 0o400n; // অক্টাল
let hex = 0x100n; // হেক্সাডেসিমেল
let bin = 0b100000000n; // বাইনারি
let hex = 0x20000000000003n;
let oct = 0o400000000000000003n;
let bin = 0b100000000000000000000000000000000000000000000000000011n;

নির্ভুলতা আকর্ষণীয়

জাভাস্ক্রিপ্টে সর্বাধিক নিরাপদ পূর্ণসংখ্যা হল 9007199254740991।

হোভারিং প্রোগ্রামগুলি এর দ্বারা নিরাপত্তা ব্যাহত করতে পারে:

MAX_SAFE_INTEGER উদাহরণ

9007199254740992 === 9007199254740993; // সত্যি!!! (মিথ্যা)
9007199254740992n === 9007199254740993n; // মিথ্যা !!! (ডান)

যথার্থ সমস্যা ডেমো:

তুলনা ফলাফল:

ব্রাউজার সমর্থন

BigInt() একটি ES2020 বৈশিষ্ট্য।

ES2020 2020 সালের সেপ্টেম্বর পর্যন্ত সমস্ত আধুনিক ব্রাউজারে সম্পূর্ণরূপে সমর্থিত:

Chrome 85

আগস্ট 2020

Edge 85

আগস্ট 2020

Firefox 79

মার্চ 2020

Safari 14

সেপ্টেম্বর 2020

Opera 71

সেপ্টেম্বর 2020

সারাংশ

বৈশিষ্ট্য ব্যাখ্যা
নির্ভুল-নির্ভুল পূর্ণসংখ্যা BigInt ইচ্ছামত-নির্ভুল পূর্ণসংখ্যার অনুমতি দেয়
আকার সীমা BigInt সংখ্যাগুলি আপনার মেমরির অনুমতি অনুসারে বড় (বা ছোট) হতে পারে
অ্যাপ্লিকেশন BigInt খুব বড় পূর্ণসংখ্যার জন্য ব্যবহৃত হয় (ক্রিপ্টোগ্রাফি, আইডি, টাইমস্ট্যাম্প ইত্যাদি)
দশমিক BigInt দশমিকের জন্য উপযুক্ত নয় - শুধুমাত্র পূর্ণসংখ্যা
গাণিতিক ফাংশন গণিত ফাংশন (যেমন Math.sqrt()) BigInts এর সাথে কাজ করে না
JSON JSON.stringify() BigInt -

জাভাস্ক্রিপ্ট টিউটোরিয়াল

এই টিউটোরিয়ালের অনেক অধ্যায় ব্যায়ামের সাথে শেষ হয় যা আপনার জ্ঞানের স্তর পরীক্ষা করতে পারে।

একটি BigInt নম্বর তৈরি করতে আইনি জাভাস্ক্রিপ্ট সিনট্যাক্স কি?

1234567890123456789m
✗ ভুল! জাভাস্ক্রিপ্টে BigInt-এর জন্য 'm' প্রত্যয় ব্যবহার করা হয় না
1234567890123456789max
✗ ভুল! জাভাস্ক্রিপ্টে BigInt-এর জন্য 'max' প্রত্যয় ব্যবহার করা হয় না
1234567890123456789n
✓ ঠিক আছে! জাভাস্ক্রিপ্টে একটি BigInt তৈরি করার জন্য 'n' প্রত্যয়টি সঠিক সিনট্যাক্স